/*
Package str
@Author   : Uyynot
@Email    : uyynot@qq.com
@Time     : 2024/4/12 16:32
@File     : str.go
@Project  : gohub
@Desc     : str字符串辅助方法
*/
package str

import (
	"github.com/gertd/go-pluralize"
	"github.com/iancoleman/strcase"
)

// Plural
// @Description: 转为复数 user -> users
// @param word
// @return string
func Plural(word string) string {
	return pluralize.NewClient().Plural(word)
}

// Singular
// @Description: 转为单数 users -> user
// @param word
// @return string
func Singular(word string) string {
	return pluralize.NewClient().Singular(word)
}

// Snake
// @Description: 转为 snake_case，如 TopicComment -> topic_comment
// @param s
// @return string
func Snake(s string) string {
	return strcase.ToSnake(s)
}

// Camel
// @Description: 转为 CamelCase，如 topic_comment -> TopicComment
// @param s
// @return string
func Camel(s string) string {
	return strcase.ToCamel(s)
}

// LowerCamel
// @Description: 转为 lowerCamelCase，如 TopicComment -> topicComment
// @param s
// @return string
func LowerCamel(s string) string {
	return strcase.ToLowerCamel(s)
}
